package com.link2room.jetfire.feign.soundwave;

import com.link2room.common.dto.result.base.BaseResultDto;
import com.link2room.jetfire.dto.param.base.ReservationParamDto;
import com.link2room.soundwave.dto.param.inside.PmsReservationPayInsideParamDto;
import com.link2room.trailbreaker.dto.paramDto.PrePayParamDto;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * @author sqj88
 * @date 2017/11/7 22:08
 */
@FeignClient("${spring.gateway.name}/${feign.soundwave}")
public interface PmsReservationFeignService {
    /**
     * PMS下单
     * @param reservationParamDto
     * @return
     * @throws Exception
     */
    @RequestMapping(method = RequestMethod.POST,value = "/in/PMSReservations",consumes = MediaType.APPLICATION_JSON_VALUE)
    BaseResultDto savePmsReservation(@RequestBody ReservationParamDto reservationParamDto) throws Exception;
    /**
     * PMS入账
     * @param pmsReservationPayInsideParamDto
     * @return
     * @throws Exception
     */
    @RequestMapping(method = RequestMethod.POST,value = "/in/PMSReservations/Payment",consumes = MediaType.APPLICATION_JSON_VALUE)
    BaseResultDto saveReservationPay(@RequestBody PmsReservationPayInsideParamDto pmsReservationPayInsideParamDto) throws Exception;
    /**
     * 储值卡预下单
     * @param paramDto
     * @return
     * @throws Exception
     */
    @RequestMapping(method = RequestMethod.POST,value = "/in/PMSReservations/MemberCardPrepay",consumes = MediaType.APPLICATION_JSON_VALUE)
    BaseResultDto<String> memberCardPrePay(@RequestBody PrePayParamDto paramDto) throws Exception;
}
